package com.galaxy.service.service.system;

import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.service.IService;
import com.galaxy.service.dto.system.role.RoleAddDto;
import com.galaxy.service.dto.system.role.QueryRoleDto;
import com.galaxy.service.dto.system.role.RoleUpdateDto;
import com.galaxy.service.entity.system.Role;
import java.util.List;

/**
 * 角色接口
 * @author caijinbang
 * @date 2018/10/27 18:13
 */
public interface RoleService extends IService<Role> {

  /**
   * 查询角色列表(分页)
   * @param queryRoleDto
   * @return
   */
  public Page<Role> list(QueryRoleDto queryRoleDto);

  /**
   * 添加角色
   * @param roleAddDto
   */
  public void add(RoleAddDto roleAddDto);

  /**
   * 移除角色
   * @param rid
   */
  public void remove(String rid);

  /**
   * 更新角色
   * @param roleId 角色id
   * @param roleUpdateDto
   */
  public void update(String roleId, RoleUpdateDto roleUpdateDto);

  /**
   * 获取指定ID用户的所有角色（并附带查询所有的角色的权限）
   * @param uid 用户ID
   * @param hasPermission 是否有权限
   * @return 角色集合
   */
  public List<Role> findAllRoleByUserId(String uid,Boolean hasPermission);

  /**
   * 更新缓存
   * @param role 角色
   * @param author 是否清空授权信息
   * @param out 是否清空session
   */
  public void updateCache(Role role,Boolean author, Boolean out);

}
